package com.netcracker.training.automonic.dao.roles.oracle;

import org.apache.log4j.Logger;

import com.netcracker.training.automonic.dao.entities.Attribute;
import com.netcracker.training.automonic.dao.entities.AttributeType;
import com.netcracker.training.automonic.dao.entities.Object;
import com.netcracker.training.automonic.dao.entities.Site;
import com.netcracker.training.automonic.dao.entities.Statistics;
import com.netcracker.training.automonic.dao.entities.StatsType;
import com.netcracker.training.automonic.dao.entities.oracle.OracleAttribute;
import com.netcracker.training.automonic.dao.entities.oracle.OracleAttributeType;
import com.netcracker.training.automonic.dao.entities.oracle.OracleObject;
import com.netcracker.training.automonic.dao.entities.oracle.OracleSite;
import com.netcracker.training.automonic.dao.entities.oracle.OracleStatistics;
import com.netcracker.training.automonic.dao.entities.oracle.OracleStatsType;
import com.netcracker.training.automonic.dao.factories.oracle.OracleDAOFactory;
import com.netcracker.training.automonic.dao.roles.WriteDAO;

/**
 * Concrete DAO role for Oracle Database Express Edition 11g Release 2.
 * 
 * @author Vadim Gidulyan
 * 
 * @see WriteDAO
 * @see OracleDAOFactory
 */

public class OracleWriteDAO implements WriteDAO
{

	public static final Logger LOGGER = Logger.getLogger(OracleWriteDAO.class);
	
	@Override
	public Site createSite(String name)
	{
		return OracleSite.createSite(name);
	}

	@Override
	public Object createObject(Site site, String name)
	{
		return OracleObject.createObject(site, name);
	}

	@Override
	public AttributeType createAttributeType(String code, String name)
	{
		return OracleAttributeType.createAttributeType(code, name);
	}

	@Override
	public Attribute createAttribute(Object object, AttributeType attributeType)
	{
		return OracleAttribute.createAttribute(object, attributeType);
	}

	@Override
	public StatsType createStatsType(String code, String name)
	{
		return OracleStatsType.createStatsType(code, name);
	}

	@Override
	public Statistics createStatistics(Object object, StatsType statsType)
	{
		return OracleStatistics.createStatistics(object, statsType);
	}

}
